#ifndef _SPLITTOOL_H_
#define _SPLITTOOL_H_

#include <cctype>
#include <set>
#include <string>
#include <vector>
#include <map>

using std::set;
using std::map;
using std::vector;
using std::string;

class Configuration;    //前向声明, 避免头文件重复引用

class SplitTool
{
public:
    SplitTool()=default;
    virtual ~SplitTool()=default;
private:
};

class SplitToolCN:public SplitTool{
public:
    SplitToolCN(Configuration *conf);
    ~SplitToolCN();

    vector<string> cutCN(const string &str);
    void DISTINCT_StopWord(vector<string> &words,vector<string>&result,set<string>stopWord);
    void DISTINCT_punct(vector<string>&words,vector<string>result);
private:
    Configuration *m_Conf;
};


#endif
